"""
封装数据：
    敌人类：敌人数据
    更符合人类的思考方式
        将数据与对数据的操作结合在一起
封装行为：DoubleListHelper
        向量（想左/右。。。）
        优势：以模块化的方式进行编程
             更可以集中精力设计/组织/指挥多个类协同工作
"""

# 使用方法封装变量


class Animals:
    def __init__(self, name, age, weight):

        self.name = name
        # self.__age = age  # _Animals__age
        self.set_age(age)
        self.__weight = weight

    # 提供公开读写方法
    def get_age(self):
        return self.__age

    def set_age(self, value):
        if value < 21:
            self.__age = value
        else:
            raise ValueError("我不要")


animal01 = Animals("cat", 2, 1)
# animal01.name = "Lazy"
# print(animal01.__dict__)  # python内置变量，存储对象的实例变量
# animal01.__age = 3
# # 创建新变量
# print(animal01.__dict__)
# animal01._Animals__age = 3
# print(animal01.__dict__)
